home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1996 May & June / Amiga-CD 1996 #5-6.iso / pd-disketten / dms-gepackt / 3_96 / apd-3-96-2.dms / apd-3-96-2.adf / Amiga-E-Kurs / listing_1.e < prev    next >
Text File  |  1996-01-30  |  2KB  |  49 lines

  1. /* Objekte und Prozeduren, ©1995 Marcel Bennicke */
  2.  
  3. ENUM MANN, FRAU               /* zwei Konstanten */
  4.  
  5. OBJECT person       /* sinnvolle Zusammenfassung */
  6.   groesse,gewicht      /* der Daten einer Person */
  7. ENDOBJECT
  8.  
  9. PROC eingabe(p:PTR TO person)
  10.   /* ohne Objekt, müßte man jede Komponente (groesse,
  11.      gewicht) einzeln als Variable übergeben */
  12.   DEF hilf[10]:STRING
  13.  
  14.   WriteF('Größe   [cm] : '); ReadStr(stdout,hilf)
  15.   p.groesse:=Val(hilf,NIL)
  16.   /* Eingabe als Zahl in Komponente groesse tun */
  17.   WriteF('Gewicht [kg] : '); ReadStr(stdout,hilf)
  18.   p.gewicht:=Val(hilf,NIL) /* in gewicht speich. */
  19.  
  20.   WriteF('Geschlecht (m/w): ');ReadStr(stdout,hilf)
  21.   IF StrCmp(hilf,'m')      /* Eingabe = 'm' ? */
  22.     RETURN MANN            /* Prozedur verlassen */
  23.   ELSE                     /* und MANN zurückgeben */
  24.    RETURN FRAU             /* sonst FRAU */
  25.   ENDIF
  26. ENDPROC              /* hier kommen wir niemals an */
  27.  
  28. PROC main()
  29.   DEF ich:person, geschl, q
  30.  
  31.   WriteF('Machen Sie Angaben zu ihrer Person:\n\n')
  32.  
  33.   /* An die Eingabeprozedur wird das Objekt ich
  34.      übergeben; danach stehen in dessen Komponenten
  35.      die Daten; als Rückgabewert erhalten wir das
  36.      Geschlecht des Benutzers */
  37.   geschl:=eingabe(ich)
  38.   q:=ich.groesse/ich.gewicht   /* Quotient bilden */
  39.  
  40.   /* falls Benutzer ein Mann und der Quotient<2 ist,
  41.      dann 'zu schwer', bei Frauen gilt Quotient<3 */
  42.   IF ((geschl=MANN) AND (q<2)) OR
  43.      ((geschl=FRAU) AND (q<3))
  44.     WriteF('Wie wäre es mit einer kleinen Diät?\n\n')
  45.   ELSE
  46.     WriteF('Sie haben das richtige Gewicht!\n\n')
  47.   ENDIF
  48. ENDPROC
  49.